home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / EModules / gms / system / sysobject.e < prev    next >
Encoding:
Text File  |  1998-10-23  |  6.3 KB  |  207 lines

  1. /*
  2. **  $VER: sysobject.e
  3. **
  4. **  (C) Copyright 1996-1998 DreamWorld Productions.
  5. **      All Rights Reserved.
  6. **
  7. */
  8.  
  9. OPT MODULE
  10. OPT EXPORT
  11. OPT PREPROCESS
  12.  
  13. MODULE 'gms/dpkernel/dpkernel','gms/system/register'
  14.  
  15. /****************************************************************************
  16. ** The SysObject structure.  Private.
  17. */
  18.  
  19. CONST VER_SYSOBJECT  = 2,
  20.       TAGS_SYSOBJECT = $FFFB0000 OR ID_SYSOBJECT
  21.  
  22. OBJECT sysobject
  23.   head[1]     :ARRAY OF head
  24.   prev        :PTR TO sysobject /* Previous object in list */
  25.   next        :PTR TO sysobject /* Next object in list */
  26.   objectid    :INT              /* Unique ID of the object, eg ID_PICTURE */
  27.   classid     :INT              /* Class reference ID */
  28.   name        :PTR TO CHAR      /* Full name of the object */
  29. ENDOBJECT
  30.  
  31. CONST SOA_Prev     = 12 OR TAPTR,
  32.       SOA_Next     = 16 OR TAPTR,
  33.       SOA_ObjectID = 20 OR TWORD,
  34.       SOA_ClassID  = 22 OR TWORD,
  35.       SOA_Name     = 24 OR TAPTR
  36.  
  37. /**************************************************************************
  38. ** Structure for field orientation.
  39. */
  40.  
  41. OBJECT field
  42.   name     :PTR TO CHAR /* The english name for the field, e.g. "Width" */
  43.   offset   :INT         /* The field's position in the object structure */
  44.   fieldid  :INT         /* Provides a fast way of finding fields, eg FID_WIDTH */
  45.   flags    :LONG        /* Special flags that describe the field */
  46.   minrange :LONG        /* Minimum value for this field (for debugging) */
  47.   maxrange :LONG        /* Maximum value for this field (for debugging) */
  48. ENDOBJECT
  49.  
  50. #define FDF_BYTE      $10000000  /* Field is byte sized */
  51. #define FDF_WORD      $20000000  /* Field is word sized */
  52. #define FDF_LONG      $40000000  /* Field is long sized */
  53. #define FDF_QUAD      $80000000  /* Field is 2xlong sized */
  54.  
  55. #define FD_OBJECT     $00000001
  56. #define FD_CHILD      $00000002
  57. #define FD_STRING     $00000004
  58. #define FD_POINTER    $00000008
  59. #define FD_BYTEARRAY  $00000010
  60. #define FD_WORDARRAY  $00000020
  61. #define FD_LONGARRAY  $00000040
  62. #define FD_SOURCE     $00000800
  63. #define FD_LOOKUP     $00001000
  64.  
  65. #define FDF_OBJECT    $40000009  /* Field refers to another object */
  66. #define FDF_CHILD     $4000000A  /* Field refers to a child object */
  67. #define FDF_STRING    $4000000C  /* Field points to a string */
  68. #define FDF_POINTER   $40000008  /* Field is an address pointer */
  69. #define FDF_BYTEARRAY $40000018  /* Points to an array of bytes */
  70. #define FDF_WORDARRAY $40000028  /* Points to an array of words */
  71. #define FDF_LONGARRAY $40000048  /* Points to an array of longs */
  72. #define FDF_UNSIGNED  $00000080  /* Field is unsigned (no negatives) */
  73. #define FDF_RANGE     $00000100  /* Enforce range limitations */
  74. #define FDF_FLAGS     $00000200  /* Field contains flags */
  75. #define FDF_HEX       $00000400  /* Field is in hexadecimal */
  76. #define FDF_SOURCE    $40000808
  77. #define FDF_LOOKUP    $00001000
  78.  
  79. /**************************************************************************
  80. ** Field identifiers provide a quick way of finding certain names.
  81. */
  82.  
  83. #define FID_Flags      1
  84. #define FID_Source     2
  85. #define FID_ScrHeight  3
  86. #define FID_ScrWidth   4
  87. #define FID_ScrMode    5
  88. #define FID_Width      6
  89. #define FID_Height     7
  90. #define FID_Size       8
  91. #define FID_Data       9
  92. #define FID_Array      10
  93. #define FID_MaxSize    11
  94. #define FID_Parent     12
  95. #define FID_Child      13
  96. #define FID_Restore    14
  97. #define FID_MemType    15
  98. #define FID_Planes     16
  99. #define FID_AmtColours 17
  100. #define FID_Palette    18
  101. #define FID_LineMod    19
  102. #define FID_PlaneMod   20
  103. #define FID_ByteWidth  21
  104. #define FID_Type       22
  105. #define FID_Buffers    23
  106. #define FID_Owner      24
  107. #define FID_Entries    25
  108. #define FID_GfxCoords  26
  109. #define FID_Frame      27
  110. #define FID_ClipLX     28
  111. #define FID_ClipRX     29
  112. #define FID_ClipTY     30
  113. #define FID_ClipBY     31
  114. #define FID_FPlane     32
  115. #define FID_PropWidth  33
  116. #define FID_PropHeight 34
  117. #define FID_Attrib     35
  118. #define FID_PlaneSize  36
  119. #define FID_MaskCoords    40
  120. #define FID_AmtFrames     41
  121. #define FID_XCoord        42
  122. #define FID_YCoord        43
  123. #define FID_Frequency     44
  124. #define FID_Pair          45
  125. #define FID_Volume        46
  126. #define FID_Priority      47
  127. #define FID_Length        48
  128. #define FID_Octave        49
  129. #define FID_Bitmap        50
  130. #define FID_Sound         51
  131. #define FID_Name          52
  132. #define FID_Colour        53
  133. #define FID_Point         54
  134. #define FID_Gutter        55
  135. #define FID_Char          56
  136. #define FID_Port          57
  137. #define FID_XChange       58
  138. #define FID_YChange       59
  139. #define FID_ZChange       60
  140. #define FID_Buttons       61
  141. #define FID_ButtonTimeOut 62
  142. #define FID_MoveTimeOut   63
  143. #define FID_NXLimit       64
  144. #define FID_NYLimit       65
  145. #define FID_PXLimit       66
  146. #define FID_PYLimit       67
  147. #define FID_Number        68
  148. #define FID_Year          69
  149. #define FID_Month         70
  150. #define FID_Day           71
  151. #define FID_Hour          72
  152. #define FID_Minute        73
  153. #define FID_Second        74
  154. #define FID_Micro         75
  155. #define FID_ModBase       76
  156. #define FID_Segment       77
  157. #define FID_Public        78
  158. #define FID_MinVersion    79
  159. #define FID_MinRevision   80
  160. #define FID_Date          81
  161. #define FID_Author        82
  162. #define FID_Copyright     83
  163. #define FID_Short         84
  164. #define FID_Args          85
  165. #define FID_GVBase        86
  166. #define FID_Prev          87
  167. #define FID_Next          88
  168. #define FID_Task          89
  169. #define FID_Address       90
  170. #define FID_ClassID       91
  171. #define FID_ClassName     92
  172. #define FID_CPU           93
  173. #define FID_ModName       94
  174. #define FID_ModNumber     95
  175. #define FID_Extension     96
  176. #define FID_Module        97
  177. #define FID_ConfigFile    98
  178. #define FID_FileHead      99
  179. #define FID_ChildDir      100
  180. #define FID_ChildFile     101
  181. #define FID_BytePos       102
  182. #define FID_DataProcessor 103
  183. #define FID_MemPtr1       104
  184. #define FID_MemPtr2       105
  185. #define FID_MemPtr3       106
  186. #define FID_Command       107
  187. #define FID_Link          108
  188. #define FID_Raster        109
  189. #define FID_BmpXOffset    110
  190. #define FID_BmpYOffset    111
  191. #define FID_Switch        112
  192. #define FID_Screen        113
  193. #define FID_XOffset       114
  194. #define FID_YOffset       115
  195. #define FID_DirectGfx     116
  196. #define FID_EntryList     117
  197. #define FID_DirectMasks   118
  198. #define FID_EntrySize     119
  199. #define FID_Music         120
  200. #define FID_Title         121
  201. #define FID_Track         122
  202. #define FID_Artist        123
  203. #define FID_Tempo         124
  204. #define FID_Position      125
  205. #define FID_Routine       126
  206.  
  207.